home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / GOLF.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.5 KB  |  349 lines

  1. 10 REM POKE53281,0:POKE53280,0:PRINT CHR$(5)
  2. 100 DIM W(4,2),I(8,2),K(7,4)
  3. 110 FORA=1TO4:FORB=1TO2:READW(A,B):NEXTB,A:FORA=1TO8:FORB=1TO2:READI(A,B):NEXTB,A
  4. 120 DATA200,325,180,265,170,240,160,255
  5. 130 DATA185,230,165,200,155,180,140,165,125,155,110,145,100,130,85,120
  6. 140 DIM B$(8,2)
  7. 150 B$(2,1)="DOUBLE":B$(2,2)="EAGLE":B$(1,1)=" ":B$(1,2)=" ":B$(3,2)=" "
  8. 160 B$(4,2)=" "
  9. 170 B$(3,1)="EAGLE":B$(4,1)="BIRDIE"
  10. 180 B$(5,1)="EVEN":B$(5,2)="PAR"
  11. 190 B$(6,1)="BOGEY"
  12. 200 B$(7,1)="DOUBLE":B$(7,2)="BOGEY"
  13. 210 B$(8,1)="TRIPLE"
  14. 220 B$(8,2)="BOGEY"
  15. 230 DIM A$(5)
  16. 240 A$(4)="RIGHT":A$(5)="LEFT"
  17. 250 A$(1)="PRO":A$(2)="LOW":A$(3)="HIGH"
  18. 260 REM
  19. 270 PRINT CHR$(147)
  20. 280 PRINT
  21. 290 PRINT"WELCOME TO MIKE'S COUNTRY CLUB"
  22. 300 PRINT
  23. 310 H7=0:H6=1:H5=1
  24. 320 Z=RND(1):S=0
  25. 330 PRINT"SKIP EXPLANATION (Y/N) ?"
  26. 340 GET A$:IF A$<>"Y"AND A$<>"N"THEN 340
  27. 350 IF A$="Y"THEN 450
  28. 360 PRINTCHR$(147):PRINT:PRINT"   THESE ARE YOUR CLUBS:"
  29. 370 PRINT"1-4 WOODS  2-9 IRONS  11 WEDGE":PRINT
  30. 380 PRINT"ADD 10 TO YOUR IRON SELECTION.          FOR EXAMPLE:":PRINT
  31. 390 PRINT"TO USE A 3 IRON, TYPE 13.  14 = 4 IRON"
  32. 400 PRINT
  33. 410 PRINT"A PUTTER CAN ONLY BE USED ON THE GREEN  IF YOU INPUT 10 AS A PUTT, THE ";
  34. 420 PRINT"BALL WILLBE HIT ABOUT 50 FT.  A 1 WILL TAP THE   BALL."
  35. 430 PRINT
  36. 440 PRINT"A WEDGE CAN'T BE USED BE GREEN"
  37. 450 REM
  38. 460 PRINT:PRINT"HOW MANY PLAYERS (1-4)? "
  39. 461 GET P1:IF P1<1 OR P1>4 THEN 461
  40. 462 K3=0
  41. 465 ON P1GOTO 480,474,466,466
  42. 466 K3=2
  43. 467 GOTO 480
  44. 474 PRINT:PRINT"MATCH OR MEDAL PLAY, (1/2 RESPECTIVELY)"
  45. 475 GET K3:IF K3<1OR K3>2THEN 475
  46. 476 GOTO 480
  47. 478 GOTO 475
  48. 480 FORA=1TO7:FORB=1TO4:K(A,B)=0:NEXTB,A
  49. 490 FOR P2=1TOP1
  50. 500 K(2,P2)=18
  51. 510 NEXTP2
  52. 520 FOR K2=1TO2
  53. 530 REM SET-UP FOR 9
  54. 540 RESTORE:FOR A=1TO24:READ DUMMY:NEXTA
  55. 550 FOR P2=1TO P1
  56. 560 K(4,P2)=0
  57. 570 NEXTP2
  58. 580 FOR K1=1TO9
  59. 590 READ K7,K8
  60. 600 K7=INT(K7*(1+.05*(.5*H4-RND(1))))
  61. 610 S=S+1
  62. 620 FOR P2=1TOP1
  63. 630 B=K7:D=K8
  64. 640 PRINT
  65. 650 PRINT
  66. 660 PRINT CHR$(147);"PLAYER"P2"AT TEE"S"-"B"YARDS LONG."
  67. 665 PRINT"PAR"D".  ";
  68. 670 C=0:H4=1:A2=1:P9=0:B1=0:R6=0
  69. 690 REM
  70. 700 IF INT(B)=0THEN 2270
  71. 710 IF C=0THEN 740
  72. 720 PRINT"WHICH CLUB THIS TIME ";
  73. 730 GOTO 750
  74. 740 PRINT"WHICH CLUB DO YOU CHOOSE ";
  75. 750 C=C+1
  76. 760 IF D-C<>1THEN 780
  77. 770 K(2,P2)=K(2,P2)-1
  78. 780 A=0:INPUTA
  79. 790 IF A>=1THEN 810
  80. 800 A=10*A:H4=0
  81. 810 A1=A2:A2=1
  82. 820 IF H4=1THEN 840
  83. 830 A1=1
  84. 840 IF A>0THEN 890
  85. 850 IF A=11THEN1790
  86. 860 IF A>11 THEN 1920
  87. 870 PRINT"ERROR IN CLUB SELECTION.  PLEASE        RE-ENTER"
  88. 880 GOTO 780
  89. 890 IF A>4THEN 850
  90. 900 X=INT(226.1+RND(1)*100)
  91. 910 Y=INT(RND(1)*30)
  92. 920 X4=A1*(W(A,1)+(1-HA*RND(1)-(1-H4)*.2*RND(1))*(W(A,2)-W(A,1)))
  93. 930 Z=RND(1)
  94. 940 IF H4=0THEN 970
  95. 950 IF Z<.85THEN 970
  96. 960 X4=INT(Z*X4)
  97. 970 X4=INT(X4+.9)
  98. 980 IF ABS(B-X4)>H4+(1-H4)*10THEN 1000
  99. 990 IF RND(1)<.05*HA+(1-HA)*.7THEN 1270
  100. 1000 IF RND(1)<.09090909090909THEN 1140
  101. 1010 IF RND(1)<.2THEN 1290
  102. 1020 IF RND(1)<H6*H4/28 THEN 1190
  103. 1030 IF RND(1)<H5*H4/27 THEN 1340
  104. 1040 IF X4+20<B THEN 1110
  105. 1050 IF X4-25>B THEN 1230
  106. 1080 IF 3>INT(1.7*Y)THEN B=3:GOTO 1090
  107. 1085 B=INT(1.7*Y)
  108. 1090 PRINT"YOU HIT THE GREEN,"B"FEET FROM THE CUP":PRINT"GOOD SHOT!"
  109. 1100 GOTO 2920
  110. 1110 IF B-X4>2 THEN B=B-X4:GOTO 1120
  111. 1115 B=2
  112. 1120 PRINT"YOU HIT IT"X4"YARDS,"B"YARDS FROM THE":PRINT"GREEN"
  113. 1130 GOTO 690
  114. 1140 IF X4+20<B THEN 1110
  115. 1150 IF B-X4>10 THEN B=B-X4:GOTO 1160
  116. 1155 B=10
  117. 1160 PRINT"YOU'RE IN THE LEFT ROUGH,"B"YRDS FROM":PRINT"THE GREEN"
  118. 1170 A2=.1+.7*RND(1)
  119. 1180 GOTO 690
  120. 1190 PRINT"YOU SLICED THE BALL INTO THE POND.  LOSETWO STROKES AND REPLAY."
  121. 1200 H6=0
  122. 1210 C=C+1
  123. 1220 GOTO 690
  124. 1230 IF RND(1)>.99THEN 1270
  125. 1240 PRINT"YOU'RE IN A TRAP NEAR THE GREEN."
  126. 1250 B=20
  127. 1260 GOTO 690
  128. 1270 PRINT"YOU HAVE SUNK THE SHOT........(BIG DEAL)"
  129. 1280 GOTO 2410
  130. 1290 IF RND(1)<H4*H5/30 THEN 1340
  131. 1300 IF B-20<X4 THEN 1340
  132. 1310 B=B-X4+25
  133. 1320 PRINT"YOU'RE IN THE RIGHT ROUGH,"B"YARDS":PRINT"FROM THE GREEN"
  134. 1330 GOTO 1170
  135. 1340 PRINT"THE BALL IS LOST IN THE WOODS.  REPLAY  AND LOSE TWO STROKES."
  136. 1350 H5=0
  137. 1360 GOTO 1210
  138. 1370 Q=INT(RND(1)*1E8)
  139. 1380 IF B<=1THEN 1470
  140. 1390 W4=Q/15
  141. 1400 IF INT(W4)=Q/15 THEN 1650
  142. 1410 IF B>10 THEN 1540
  143. 1420 IF B>5THEN 1670
  144. 1430 IF H7=0THEN 1460
  145. 1440 H7=INT(.5*RND(1))
  146. 1450 GOTO 1470
  147. 1460 IF RND(1)<(.1+(B-1)*.04)*HA THEN 1490
  148. 1470 PRINT"THE TAP IS GOOD. "
  149. 1480 GOTO2270
  150. 1490 PRINT"WHAT?  YOU MISSED THE TAP.  YOU ARE ON  THE LIP OF THE CUP."
  151. 1500 H7=9
  152. 1510 B=1
  153. 1530 GOTO 2920
  154. 1540 W5=Q/3
  155. 1550 IF RND(1)<.005+(1-H4)*.5 THEN 1650
  156. 1560 IF INT(W5)=Q/3 THEN 1710
  157. 1570 B=INT(B*H4/10)
  158. 1580 I=INT(1+3*RND(1)):C7=B:C6$="FEET"
  159. 1590 I=INT(1+5*RND(1))
  160. 1600 IF B>1 THEN 1630
  161. 1610 C7=2+15*RND(1):C6$="INCHES":C7=INT(C7)
  162. 1620 B=1
  163. 1630 PRINT"YOU SLID BY ON THE "A$(I)"SIDE BY"C7;C6$
  164. 1640 GOTO 2920
  165. 1650 PRINT"YOU  S-U-N-K  IT FROM"B"FEET"
  166. 1660 GOTO2270
  167. 1670 IF RND(1)<.1+(1-H4)*.8 THEN 1650
  168. 1680 W6=Q/2
  169. 1690 IF INT(W6)=Q/2 THEN 1650
  170. 1700 IF RND(1)>.5 THEN 1570
  171. 1710 B=INT((B*3)/10)
  172. 1720 IF B*H4>2THEN B=B*H4:GOTO1730
  173. 1725 B=2
  174. 1730 IF P9<>0 THEN 1770
  175. 1740 P9=9
  176. 1750 PRINT"YOU LAGGED UP TO"B"FEET FROM THE CUP"
  177. 1760 GOTO2920
  178. 1770 PRINT"YOU'RE STILL"B"FEET AWAY."
  179. 1780 GOTO2920
  180. 1790 IF B>90 THEN 870
  181. 1800 IF RND(1)<H4/(B+29)+(1-H4)*(1.4-RND(1)) THEN 2200
  182. 1810 IF B<40 THEN 1870
  183. 1820 IF A1=1 THEN 1840
  184. 1830 B=B+RND(1)*40
  185. 1840 MAD=INT(.6*B*RND(1)):IF MAD>3 THEN B=MAD:GOTO1850
  186. 1845 B=3
  187. 1850 PRINT"YOU'RE ON THE GREEN,"B"FEET FROM THE":PRINT"HOLE"
  188. 1860 GOTO2920
  189. 1870 MAD=INT(RND(1)*.5*B):IF MAD>1THENB=MAD:GOTO 1880
  190. 1875 B=1
  191. 1880 IF A1=1 THEN 1900
  192. 1890 B=INT(B+RND(1)*25)
  193. 1900 PRINT"THAT LEAVES YOU A"B"FOOT PUTT."
  194. 1910 GOTO2920
  195. 1920 M=INT(RND(1)*35+200.1)
  196. 1930 IF A>19 THEN 870
  197. 1940 N=RND(1)*2+3.1
  198. 1950 W=INT(I(A-11,1)+RND(1)*(I(A-11,2)-I(A-11,1)))
  199. 1960 IF A1=1 THEN 1980
  200. 1970 A1=1/(.8+.4*RND(1))
  201. 1980 Z=RND(1):IF A1*W>.6*WTHEN W=INT(A1*W):GOTO 1990
  202. 1985 W=INT(.6*W)
  203. 1990 IFZ<.8THEN 2010
  204. 2000 W=INT(W/(.8+.4*RND(1)))
  205. 2010 IF ABS(B-W)<15 THEN 2220
  206. 2020 IF B-W<25 THEN 2160
  207. 2030 W9=M/27
  208. 2040 IF RND(1)<H5*H4/27 THEN 1340
  209. 2050 V=M/8
  210. 2060 IF B-W>50 THEN 2080
  211. 2070 IF INT(V)=M/8 THEN 1240
  212. 2080 B=ABS(B-W)
  213. 2090 Z=RND(1)
  214. 2100 IF A1<>1 THEN 2130
  215. 2110 IF Z>.8 THEN 1320
  216. 2120 GOTO2140
  217. 2130 IF Z>.5 THEN 1160
  218. 2140 PRINT"YOUR SHOT WENT"W"YARDS, LEAVING YOU":PRINTB"YARDS FROM THE GREEN."
  219. 2150 GOTO690
  220. 2160 IF B+25<W THEN 1240
  221. 2170 B=25+INT(60*RND(1))
  222. 2180 PRINT"YOU'RE"B"FEET FROM THE PIN, ON THE":PRINT"GREEN"
  223. 2190 GOTO2920
  224. 2200 PRINT"YOU  S-U-N-K  IT."
  225. 2210 GOTO2410
  226. 2220 IF RND(1)<.03*H4+(1-HA)*.9 THEN 2200
  227. 2230 B=INT(ABS(B-W))
  228. 2240 IF B<2 THEN B=2
  229. 2250 PRINT"YOUR SHOT HIT THE GREEN,"B"FEET FROM":PRINT"THE CUP."
  230. 2260 GOTO 2920
  231. 2270 REM
  232. 2280 REM
  233. 2290 PRINT"YOU TOOK"C"STROKES ON HOLE"S"."
  234. 2300 Z=C-D+5
  235. 2310 IF Z<9 THEN 2330
  236. 2320 Z=1
  237. 2330 IF B$(Z,2)=" "THEN 2360
  238. 2340 PRINT B$(Z,1)" "B$(Z,2)"."
  239. 2350 GOTO2440
  240. 2360 IF Z<>1 THEN 2390
  241. 2370 PRINT
  242. 2380 GOTO2440
  243. 2390 PRINTB$(Z,1)"."
  244. 2400 GOTO2440
  245. 2410 IF C<>1 THEN 2270
  246. 2420 PRINT" ** HOLE IN ONE **"
  247. 2430 REM
  248. 2440 REM
  249. 2450 K(1,P2)=K(1,P2)+C
  250. 2460 K(4,P2)=K(4,P2)+C
  251. 2461 K(5,P2)=C
  252. 2462 PRINT:PRINT"PRESS (-RETURN-)."
  253. 2463 GET K$:IF K$<>CHR$(13)THEN 2463
  254. 2464 NEXTP2
  255. 2465 IF K3=0 THEN 2660
  256. 2470 PRINT CHR$(147)
  257. 2471 ON K3 GOTO 2472,2580
  258. 2472 K4=K(5,1)-K(5,2)
  259. 2474 IF K4<>0 THEN 2480
  260. 2476 PRINT"HOLE IS EVEN"
  261. 2478 GOTO 2654
  262. 2480 IF K4>0 THEN 2520
  263. 2490 PRINT"PLAYER 1 TOOK THE HOLE BY"K4-K4*2"STROKES."
  264. 2500 K(6,1)=K(6,1)+1
  265. 2510 GOTO2540
  266. 2520 PRINT"PLAYER 2 TOOK THE HOLE BY"K4"STROKES."
  267. 2530 K(6,2)=K(6,2)+1
  268. 2540 IF ABS(K(6,1)-K(6,2))>(18-S)THEN 2560
  269. 2550 GOTO2654
  270. 2560 PRINT"GAME OVER."
  271. 2570 GOTO 2770
  272. 2580 P5=0:P6=99
  273. 2590 FOR P2=1TOP1
  274. 2600 IF P5<K(1,P2)THEN P5=K(1,P2)
  275. 2610 IF P6>K(1,P2)THEN P6=K(1,P2)
  276. 2620 NEXTP2
  277. 2630 FORP2=1TOP1
  278. 2640 PRINT"PLAYER"P2"HAS"K(1,P2)"STROKES,WITH":PRINTP5"MAX,"P6"MIN.":PRINT:PRINT
  279. 2650 NEXTP2
  280. 2654 PRINT:PRINT"PRESS (-RETURN-)."
  281. 2655 GET K$:IF K$<>CHR$(13)THEN 2655
  282. 2660 NEXTK1
  283. 2665 REM
  284. 2670 PRINT
  285. 2680 REM
  286. 2690 PRINT CHR$(147):PRINT"........ END OF NINE .........":PRINT
  287. 2700 FOR P2=1TOP1
  288. 2710 PRINT"PLAYER"P2"HAD"K(4,P2)"ON THE NINE,"
  289. 2720 Z=K(4,P2)-36
  290. 2730 GOSUB3160
  291. 2740 PRINT
  292. 2750 NEXTP2
  293. 2751 PRINT:PRINT"PRESS (-RETURN-)."
  294. 2752 GET K$:IF K$<>CHR$(13)THEN 2752
  295. 2755 REM
  296. 2760 NEXTK2
  297. 2770 REM
  298. 2775 PRINT CHR$(147)
  299. 2780 FOR P2=1TOP1
  300. 2790 PRINT
  301. 2800 PRINT"PLAYER"P2"TOOK"K(1,P2)"STROKES ON THE ROUND."
  302. 2810 Z=K(1,P2)-72
  303. 2820 GOSUB3160
  304. 2830 PRINT
  305. 2840 PRINT"HIT"K(2,P2)"GREENS IN REGULATION OR BETTER,"
  306. 2850 PRINT"AND TOOK"K(3,P2)"PUTTS."
  307. 2860 ON K3GOTO2870,2880
  308. 2870 PRINT"...... TOOK"K(6,P2)"HOLES ."
  309. 2880 NEXTP2
  310. 2885 PRINT:PRINT"PRESS (-RETURN-)."
  311. 2886 GET K$:IF K$<>CHR$(13)THEN 2886
  312. 2890 GOTO260
  313. 2900 DATA374,4,334,4,380,4,376,4,148,3,324,4,422,4,365,4,595,5
  314. 2910 DATA510,5,434,4,210,3,312,4,428,4,205,3,515,5,318,4
  315. 2920 REM
  316. 2930 IF INT(B)=0THEN 2270
  317. 2940 C=C+1
  318. 2950 K(3,P2)=K(3,P2)+1
  319. 2960 PRINT"WHAT'S YOUR PUTT?"
  320. 2970 W=5.5:W1=4.5
  321. 2980 IF B<52 THEN 3000
  322. 2990 W=.12*B:W1=.08*B
  323. 3000 A=0:INPUT A
  324. 3010 T=RND(1)*W
  325. 3020 IF T<W1 THEN 3010
  326. 3030 IF A>10 THEN 3100
  327. 3040 IF A<1 THEN 3100
  328. 3050 IF A>5 THEN 3070
  329. 3060 IF A>0 THEN 3075
  330. 3070 IF ABS(A*T-B)<15 THEN 3120
  331. 3074 GOTO 3080
  332. 3075 IF ABS(A*T-B)<10 THEN 3120
  333. 3080 PRINT"YOU'RE KIDDING.  RE-ENTER "
  334. 3090 GOTO3000
  335. 3100 PRINT"CAN'T USE THAT.  RE-ENTER "
  336. 3110 GOTO3000
  337. 3120 IF B1<>0 THEN 1470
  338. 3130 IF A*T+8<B THEN 1710
  339. 3140 IF A*T-8>B THEN 1710
  340. 3150 GOTO1370
  341. 3160 IF Z=0 THEN 3200
  342. 3170 IF Z>0 THEN 3220
  343. 3180 PRINTZ-Z*2"UNDER PAR."
  344. 3190 RETURN
  345. 3200 PRINT"EVEN PAR."
  346. 3210 RETURN
  347. 3220 PRINTZ"OVER PAR."
  348. 3230 RETURN
  349.